Skip to main content

Bagaimana Mendeklarasikan Variabel dan Konstanta?

Di bagian sebelumnya kamu sudah mempelajari arsitektur package Move on Sui dan gambaran struktur smart contract. Sekarang kita masuk lebih dalam ke dasar-dasar bahasa Move di Sui.

Keyword let

Di Move on Sui, keyword let dipakai untuk mendeklarasikan dan menginisialisasi variabel. Setelah dideklarasikan, variabel bisa diakses dan dimodifikasi (sesuai aturan kepemilikan / mutabilitas). Bentuk umum deklarasinya:

let <Variable> : <Type>
let <Variable> = <Expression>
let <Variable> : <Type> = <Expression>

Contoh (jangan perlu khawatir tipe, akan dibahas sebentar lagi). Ingat titik koma wajib di Move:

let a;
let b : u8;
let c = true;
let d : u8 = 10;

Ingat kita mendefinisikan object dengan struct, tapi untuk membuat instance-nya kita pakai let. Contoh:

module hello_world::hello_world {
// Mengimpor module object
use sui::object::UID;
use sui::tx_context::{Self, TxContext};

// Mendeklarasikan HelloWorldObject
struct HelloWorldObject has key {
id: UID,
}

// Constructor / init
fun init(ctx: &mut TxContext) {
// Inisialisasi HelloWorldObject dengan let
let object = HelloWorldObject {
id: object::new(ctx),
};
}
}
  • Catatan: Contoh tidak untuk langsung dijalankan, hanya ilustrasi penggunaan konsep.

Perhatikan kita memakai object::new(ctx) dari module object saat menginisialisasi.

Keyword const

Keyword const dipakai untuk mendeklarasikan konstanta tingkat module (didefinisikan di luar fungsi dan bisa dipakai di seluruh module). Bentuknya:

const <Variable> : <Type> = <Expression>;

Poin penting:

  1. Nilainya tidak bisa diubah setelah didefinisikan.
  2. Hanya dapat diakses di dalam module yang sama.
  3. Umumnya dipakai untuk nilai tetap (misal batas maksimum, faktor tetap) yang ingin konsisten di seluruh module.

Contoh:

module examples::example {
const MAX : u64 = 100;

public fun is_max(num: u64): bool {
num == MAX
}
}

Penutup

Variabel dan konstanta adalah fondasi: dipakai untuk menyimpan informasi dan membangun object. Berikutnya kita bahas berbagai tipe data yang tersedia di Move on Sui.